using System;
using Microsoft.WowAddonStudio.Services;

namespace Microsoft.WowAddonStudio.Tests.Common.Mocks
{
    public class MockAddonStudioSettings : IAddonStudioSettings
    {
        /// <summary>
        /// Initializes a new instance of the <see cref="MockAddonStudioSettings"/> class.
        /// </summary>
        /// <param name="backgroundImageFile">The background image file.</param>
        /// <param name="wowBenchPath">The wo W bench path.</param>
        public MockAddonStudioSettings(string backgroundImageFile, string wowBenchPath)
        {
            BackgroundImageFile = backgroundImageFile;
            CustomWowBenchPath = wowBenchPath;
        }


        /// <summary>
        /// Initializes a new instance of the <see cref="MockAddonStudioSettings"/> class.
        /// </summary>
        /// <param name="wowBenchPath">The wo W bench path.</param>
        public MockAddonStudioSettings(string wowBenchPath):this(null, wowBenchPath)
        {
        }

        #region IAddonStudioSettings Members

        /// <summary>
        /// Fires when the user changes the WoW base path in the options menu.
        /// </summary>
        public event EventHandler CustomDeploymentLocationChanged;

        /// <summary>
        /// Occurs when [background image file changed].
        /// </summary>
        public event EventHandler BackgroundImageFileChanged;

        /// <summary>
        /// Gets the BackgroundImageFile setting.
        /// </summary>
        /// <value></value>
        public string BackgroundImageFile { get; private set; }

        /// <summary>
        /// Gets the WoWBench folder setting.
        /// </summary>
        /// <value></value>
        public string CustomWowBenchPath { get; set; }

        /// <summary>
        /// Gets the WoW base path folder setting.
        /// </summary>
        /// <value></value>
        public string CustomDeploymentLocation { get; set; }

        /// <summary>
        /// Gets or sets a value indicating whether [open in editor].
        /// </summary>
        /// <value><c>true</c> if [open in editor]; otherwise, <c>false</c>.</value>
        public bool OpenInEditor { get; set; }

        #endregion
    }
}